#!/usr/bin/enr/python3
# -*- coding: utf-8 -*-
# -------------------------------
# @Author : hurong
# @File : recursion_sum.py
# @Time : 2023/7/3 16:24
# -------------------------------
def list_sum(data_list, sun_data, sum_data):
    # 1.基线条件:当列表一直删除元素，删除到为空列表时停至
    if len(data_list) ==0:
        return sum_data
    # 2.递归条件，一直传递被修改的列表，以及最后的累加和的变量
    # 3.问题如何分解：每累加一个元素，就把这个元素在列表里面去掉，这样列表就能越变越小
    pop_data = data_list.pop()
    sum_data = sum_data + pop_data
    return list_sum(data_list,sum_data)



def test_list_sum():
    assert list_sum([1,2,3,4]) == 10
    assert list_sum([1,2,3]) == 6
    assert list_sum([1,2,33]) == 36